On-demand indexing

ABSTRACT

A method for indexing objects in a computerized system having an index, comprising identifying in the computerized system an at least one indexed object that meets an at least one criterion related to contents of the at least one indexed object, detecting an at least one non-indexed object having a property similar to an at least one property of the at least one indexed object that was identified, and indexing the at least one non-indexed object in the index, wherein the method is performed by the computerized system, and an apparatus for performing the same.

BACKGROUND

The present disclosure generally relates to a search in a computerizedsystem, and more specifically to a search in a computerized systemhaving an index.

Indexing of objects, such as files, of a computerized system is known inthe art, in case the computerized system comprises numerous variableobjects the indexing may not catch up with the objects. Thus,index-based searches for objects in the computerized system may not bethorough.

SUMMARY

One exemplary embodiment of the disclosed subject matter is a method forindexing objects in a computerized system having an index, comprisingidentifying in the computerized system an at least one indexed objectthat meets an at least one criterion related to contents of the at leastone indexed object, detecting an at least one non-indexed object havinga property similar to an at least one property of the at least oneindexed object that was identified, and indexing the at least onenon-indexed object in the index, wherein the method is performed by thecomputerized system.

Another exemplary embodiment of the disclosed subject matter is a methodfor post-search indexing of objects in a computerized system having anindex, comprising searching for indexed objects in the computerizedsystem according to an at least one criterion received from a computerthat is linked to the computerized system, identifying in thecomputerized system an at least one indexed object that meets the atleast one criterion, detecting an at least one non-indexed object havinga property similar an at least one property of the at least one indexedobject, providing the computer with alternatives for choosing either todemand proceeding with indexing of the at least one non-indexed objector to postpone the indexing of the at least one non-indexed object, andreceiving a choice from the computer, and according to the choice,performing either indexing of the at least one non-indexed object andproviding the computer with a representation thereof, or scheduling fora subsequent indexing the at least one non-indexed object, wherein themethod is performed by the computerized system.

Yet another exemplary embodiment of the disclosed subject matter is anapparatus for indexing objects in a computerized system, comprising anat least one computer, an at least one storage device constructed withan index for objects of the computerized system, wherein the at leastone computer is constructed with a program configured for identifying inthe computerized system an at least one indexed object that meets an atleast one criterion related to contents of the at least one indexedobject, detecting an at least one non-indexed object having a propertysimilar an at least one property of the at least one indexed object, andindexing the at least one non-indexed object in the index.

BRIEF DESCRIPTION OF THE DRAWINGS

Some non-limiting exemplary embodiments or features of the disclosedsubject matter are illustrated in the following drawings.

Identical or duplicate or equivalent or similar structures, elements, orparts that appear in one or more drawings are generally labeled with thesame reference numeral, optionally with an additional letter or lettersto distinguish between similar entities or variants of entities, and maynot be repeatedly labeled and/or described.

Dimensions of components and features shown in the figures are chosenfor convenience or clarity of presentation and are not necessarily shownto scale or true perspective. For convenience or clarity, some elementsor structures are not shown or shown only partially and/or withdifferent perspective or from different point of views.

References to previously presented elements are implied withoutnecessarily further citing the drawing or description in which theyappear.

FIG. 1A schematically illustrates a portion of an enterprise withindexed and non-indexed objects, according to exemplary embodiments ofthe disclosed subject matter;

FIG. 1B schematically illustrates a portion of an enterprise withindexed and non-indexed objects where at least one of the non-indexedobjects is indexed based on properties of the indexed objects, accordingto exemplary embodiments of the disclosed subject matter;

FIG. 2A outlines operations in indexing non-index objects in acomputerized system having an index, according to exemplary embodimentsof the disclosed subject matter; and

FIG. 2B limber outlines operations in indexing non-index objects in acomputerized system having an index, according to exemplary embodimentsof the disclosed subject matter.

DETAILED DESCRIPTION

In the context of the present disclosure, without limiting, the term‘enterprise’ implies a computerized system comprising a plurality ofcomputers communicating therebetween and having and/or sharing and/orcommunicating with a data storage device. The enterprise is alsoreferred to as a ‘computerized system’ and the data storage device alsoreferred to as ‘data storage’ or ‘storage’.

For brevity, referring to an operation of the enterprise, such assending of data, implies an operation of one or more components and/orcomputers of the enterprise.

Generally, without limiting, an enterprise comprises several computersin a range between about 10 computers and about 1000 computers or more.Optionally, an enterprise comprises less than 10 computers, notprecluding having one computer as, for example, a mainframe computer.

In the context of the present disclosure, without limiting, the term‘object’ implies a data element of the enterprise, such as a document, afile, an email, share point list, or a database and/or a construct thatcontains or associated with other objects, such as a folder or adirectory.

In the context of the present disclosure, without limiting, the term‘property’ of an object implies a feature or aspect of and/or respectiveand/or corresponding to an object. For example, a name, an address in astorage device and/or a link to a network storage device, an ownership,an access history of an object, an access permissions to an object, aclassification, or an attribute of an objects such as set or maintainedby an operating system such as creation date and time of an object,entity or person creating and/or amending an object, size of an object,type of an object, tags with information about an object, and so forth.Accordingly, properties of an object comprise one or more property ofand object, and likewise, an object corresponds to the propertiesthereof.

In some cases or embodiments, without limiting, referring to propertiesof an object implies referring to part of the properties and/or to aproperty of the object. For brevity, according to the context, referringto properties implies properties of an object and/or objects.

In the context of the present disclosure, without limiting, the term‘index’ implies a constructs such as an inventory or a catalog havingdata or information of and/or about objects by contents thereof, wheredata or information about an object is constructed in an entry of theindex, generally an entry per object, such that entries correspond orare respective to objects and vise versa.

By way of a figurative example, an index may resemble a collection ofcards or records of a book library, where each card or record, akin toan entry of an index, comprises information about the book in thelibrary such as title, authors, publisher, code, summary of contents,keywords, classification, shelf location, borrowing restrictions orallowances, borrowing and returns histories and so forth.

In the context of the present disclosure, without limiting, the term‘indexing’ or index operation imply compiling and constructing data orinformation about and/or of objects in an index.

Generally and without limiting, an index comprises elements of thecontents of objects, such as keywords and/or phrases and/or extractsand/or citations and/or excerpts from the objects and/or derivationsthereof such as stems, and at least optionally information about thelocations of the elements in the objects. In some embodiments, the indexcomprises properties of objects or, alternatively, the properties areseparately stored and maintained.

It is noted that the index of an enterprise may not be complete and/orsufficiently complete, such as due to the sheer number of objects andongoing alterations thereof during the activity in the enterprise.

For brevity, properties having one or more common elements and/orsimilar elements and/or other relationships therebetween are referred toas similar properties and/or as related properties, and objectsrespective or corresponding to similar properties are referred to assimilar objects and/or as related objects.

In the context of the present disclosure, without limiting, the term‘indexing server’ denotes one or more data processing apparatusesconfigured to index content of objects of the enterprise and to maintainthe index. In some embodiments, the indexing server is configured tostore the properties of the objects in one or more storage devices suchas in a database where, optionally, the database comprises an index or apart thereof.

In the context of the present disclosure, without limiting, the term‘client computer’ refers to a computer and/or a computerized device sucha smartphone or tablet computer, linked and/or linkable to theenterprise such as to a component of the enterprise by a communicationfacility or facilities, such as by a network and/or the internet orwireless or mobile communication or any combination of communications.Generally, the client computer is configured for data transfers and/orexchange with the enterprise and/or a component thereof. Thus, generallyand without limiting, at least as data or objects of a client computerare concerned, a client computer is regarded or considered as a part ofthe enterprise, though not necessarily a physical part thereof,optionally temporarily or for a certain time.

In the context oldie present disclosure, without limiting, the term‘connect’ or ‘link’ implies either directed communication connectionand/or indirect communication such as via a network and/orinterconnections of components.

In some embodiments, without limiting, a client computer is operatedand/or controlled by a human operator which is also referred to a user.In some embodiments, referring to an operation of a client computerimplies an operation controlled by a human operator of the clientcomputer.

In the context of the present disclosure, without limiting, referring toa client computer being on-line and off-line with respect an enterpriseimplies imply that the client computer is linked or not lined to theenterprise, respectively.

The terms cited above denote also inflections and conjugates thereof.

Generally, plentiful of object reside in and/or linked to the enterpriseand are accessible by numerous operators and computers, and the objectsare subject to various modifications, including creations and deletions.

Indexing of objects in an enterprise requires computational resourcesand time for collecting and structuring, properties of objects,including exploring inside the objects to identify and extract elementsof the contents of the objects, and subsequently index the content ofthe objects. Thus, considering the ceaselessly varying objects, theindexing of objects in the enterprise may lag behind, leaving objectsthat are not yet indexed and/or having incomplete or insufficient indexinformation.

One technical problem dealt by the disclosed subject matter is extendinga search for objects in an enterprise with objects of the enterprisethat may be related or relevant to the searched objects and are not yetindexed or not sufficiently indexed.

One technical solution according to the disclosed subject matter isconfiguring the indexing server to further look for and identify in theenterprise objects related to those discovered in a search which werenot indexed or are not sufficiently indexed. The indexing server isfurther configured to index the identified objects and providereferences to the identified objects, thereby extending the search withrelated objects by post-search indexing.

In once course of action the indexing server promotes the priority foridentifying and indexing the related objects relative to otheractivities, thereby extending the search, at least partially, within asuitable practical time.

In another course of action, the indexing server schedules or assigns anactivity, such as a task, with sufficient priority for subsequentlyidentifying and indexing the related objects and notifying, optionallyprogressively, optionally with references to the identified objectsand/or their whereabouts. Alternatively, a selection of the courses ofactions is presented, enabling a requesting or demanding one or more ofthe courses of actions.

The course of actions are either preset or determined based onindication in the search, or particularly requested before and/or afterthe search.

In some embodiments, the search is carried out in the enterprise by aclient computer operated by a user requesting a search akin to orresembling a Google search (Google Inc.) or a Yahoo search (Yahoo!Inc.).

Accordingly the indexing server provides the client computer with thesearch results along with at least some of the extended search results,and/or notifies the client computer, such as by email or SMS, with orabout the extended search results and/or that search results areavailable and/or their whereabouts and/or with representations thereof.Alternatively, a selection of the courses of actions is presented to theuser, offering the user to request or demand one or more of the coursesof actions.

It is noted that referring to the indexing server does not necessarilyimply the indexing sever per se but, rather, a component or componentsof the enterprise operating on behalf thereof and/or one or moreprocesses operating with and/or for the indexing, server. Likewise, theinteraction with the client computer does not necessarily carried out bythe indexing server.

A potential technical effect of the disclosed subject matter is anenterprise providing references to related objects of the enterprisethat are practically not accessible due to missing information thereof.

A general non-limiting overview of practicing the present disclosure ispresented below. The overview outlines exemplary practice of embodimentsof the present, disclosure, providing a constructive basis for variantand/or alternative and/or divergent

A computerized system, such as an enterprise,+ stores and/or linked toabundant number of objects which change and/or created and/or deleted inthe course of the operation of the computerized system. One Or morecomponents of the computerized system, such as an indexing server,execute in the course of the operation of the computerized system toindex the objects by contents thereof, but may not cope with the numberof the objects and variations thereof.

One or more components of the computerized system, such as the indexingserver, keep track of properties of the objects, at least partially, andstores them in an index of the computerized system and/or separatelysuch as in a separate database.

Generally, collecting and storing properties of objects is much simplerand faster than inspecting and extracting contents of objects, and,thus, properties of objects are available while sufficient indexing ofobjects is not.

In case a search for objects by certain criteria based on contentsthereof is conducted in the computerized system, some objects that wereindexed may be found or identified based on the index, but other objectsthat potentially meet and/or related to the criteria may not be foundsince the other objects are not yet indexed and/or insufficientlyindexed.

In order to broaden the search for potential matches, however, thecomputerized system initiates indexing of objects having propertiessimilar and/or related to the properties the of objects found oridentified. Consequently, based on the indexing, resumes and/or re-startthe search to provide further results.

A rationale fir such broadening of the search is a presumption or aconjecture that objects having similar properties are likely, at leastto some extent, to meet the search criteria.

Based on an analogous rationale, in some embodiments, the search isfurther broadened by including in the results also objects havingproperties similar and/or related to the properties the of objects foundor identified objects, optionally only objects having a determinedsufficient similarity to the properties the of objects found oridentified objects.

In some embodiments, the indexing of objects having properties similarand/or related to the properties the of objects found or identified isinitiated by one or more processes operative with and/or on behalf of anindex and/or indexing server of the computerized system. In someembodiments, the one or more processes are operative in providing theresults also objects having properties similar and/or related to theproperties the of objects found or identified objects.

For brevity, the one or more processes are collectively referred to asan engine. The engine is operative on one or more component of thecomputerized system or, optionally or additionally, on a computerizedapparatus linked with a component of the computerized system.

Principally, without limiting, the engine is constructed to operate withany index that provides for interacting therewith, such as by APIs(Application Programming Interface), SQL (Structured Query Language)commands, and/or any other method such as programmed events.Accordingly, the index is not necessarily proprietary to thecomputerized system.

FIG. 1A schematically illustrates a portion, of an enterprise 100 withindexed and non-indexed objects, according to exemplary embodiments ofthe disclosed subject matter.

Enterprise 100 comprises an index-storage 112 that stores and maintainsan index 110 of objects of enterprise 100, as illustrated by dottedlines 192 extending from index-storage 112. Index 110 comprises entries102 respective or corresponding to objects of enterprise 100. Enterprise100 also comprises a properties-storage 114 that stores and maintainsproperties of objects of enterprise 100 in a construct such as listand/or a catalog and/or database, for brevity referred to as aproperties-catalog (not shown).

It is noted that, generally, unlike indexing of objects of enterprise100 by contents thereof, the properties are tracked and cataloged,throughout, enterprise 100 practically immediately and/or within asufficiently short time responsive to alteration of creation or deletionof objects. For example, as an object is created or altered an event isgenerated and responsively the properties of the object, at leastpartially, are cataloged. Thus, the properties-catalog is practicallyup-to-date during the operation of enterprise 100.

Storages of enterprise 100 that store or contain objects of enterprise100 are schematically illustrated as storage 118 and storage 116.Storage 116 contains objects that are already indexed as represented byobjects 150 and exemplified by a series of object 150 a to object 150 e,and having corresponding entries 152 in index 110 as part of entries102. On the other hand, storage 118 contains non-indexed objects, thatis, objects that are not yet indexed, as represented by objects 140 andexemplified by a series of object 140 a to object 150 d. Dots 158represent entries of other objects that are, at least possibly, indexed.

Generally, objects 140 and objects 150 represent various objects. Forexample, individual and/or separate and/or simple and/or basic objectssuch as exemplified by object 140 c or object 150 a, and/or complex orcompound objects as folders or directories or binders as exemplified byobject 140 a or 150 c.

Enterprise 100 further comprises an engine 130 comprising an at leastone program, for performing tasks related to indexing of objects thatare not yet indexed, as described below such as with respect to FIG. 1B.

By way of example, a client computer 120 linked to enterprise 100, asschematically indicated by an arrow 194, conducts a search for objectsof enterprise 100 according to some criteria, such as a condition orconditions related to contents of the objects. The search conducted byclient computer 120 is also referred to as an original search.

Responsively, enterprise 100, such as by a component thereof, looks upindex 110 and by entries 152 identifies objects that meet the searchcriteria, By way of example, object 150 a, object 150 b and object 150 care identified, as schematically illustrated by the bulky outlinesthereof. Generally, without limiting, client computer 120 is notifiedabout the identified objects, such as by providing links and/orrepresentations of the identified objects to client computer 120.

As enterprise 100 comprises objects beyond those already indexed, it islikely that other objects that are not yet indexed may meet the searchcriteria, at least partly. As the number of objects that are not yetindexed is generally exceedingly large it is prohibitory to whollyaccess and index the non-indexed objects. Yet, it is reasonably probablethat non-indexed objects haying similar and/or shared properties withthe identified objects might meet the search criteria, at least partly,and thus are candidates for indexing and expanding the search.

FIG. 1B schematically illustrates a portion of enterprise 100 withobjects 150 as indexed objects and objects 140 as non-indexed objects,where one or more of objects 140 are indexed based on properties ofobjects 150, according to exemplary embodiments of the disclosed subjectmatter.

Engine 130 is activated, as indicated schematically by the full-linearrows as opposed to the dotted-line arrows of FIG. 1A where engine 130is, at least possibly and/or in some embodiments, is not operative or is‘idle’.

In some embodiments, engine 130 detects and/or obtains the properties ofthe identified objects as exemplified by object 150 a, object 150 b andobject 150 c, as indicated schematically by dotted arrows 182.Subsequently, engine 130 identifies and/or determines in theproperties-catalog properties related or similar to the identifiedobjects, as indicated schematically by a dashed arrow 184, and thecorresponding object or objects thereof such as by using the addressand/or URL of the corresponding object or objects.

By way of example, the similar or related properties correspond toobject 140 b, which represents also possibly other non-indexed objectsto which the similar or related properties correspond.

Consequently, object 140 b is accessed by engine 130, as indicatedschematically by a dashed arrow 186, and is indexed by engine 130 inindex 110, as indicated schematically by a dashed arrow 188 andcorresponding entry 142 as a pan of entries 102. In a case where object140 b does indeed meet the search criteria as judged by entry 142 and/oras determined by engine 130, the search is extended by object 140 b asan additional result and client computer 120 is notified about object140 b such as by a representation thereof, thereby extending the searchconducted by client computer 120.

In some embodiments, in order expedite the extension of the search asdescribed above, operation of engine 130 is assigned a sufficient highpriority relative to other processes or operations taking place inenterprise 100. Thus, a user operating client computer 120 receives theextended results sufficiently fast For example, just after thenotification and/or representations of the identified indexed objectsand within a sufficiently negligible lapse so that additional resultappear as part of the original search results. Optionally, in someembodiments, such as in a case where engine 130 cannot provide theadditional results within a sufficient short period, client computer 120is notified that further results are expected.

Alternatively, in some embodiments, after engine 130 identifies and/ordetermines in the properties-catalog properties related or similar tothe identified objects, client computer 120 is notified with a messageprompting the user operating client computer 120 to select a subsequentprocedure. In some embodiments, the prompting is to either (a) toproceed with indexing of object 140 b, optionally with sufficiently highpriority, or (b) to postpone the indexing and extension of the search,such as to schedule the indexing to operate in a regular or lowerpriority relative to other processes taking place in enterprise 100.

In case the user selects to proceed with indexing, engine 130 indexesobject 140 b in index 110, and if object 140 b does indeed meet thesearch criteria as judged by entry 142 and/or as determined by engine130, the search is extended by object 140 b and client computer 120 isnotified about object 140 b, thereby extending the search thereof.

In case the user selects to postpone the indexing and extension of thesearch, engine 130 is assigned a task to subsequently accessing andindexing of object 140 b and determination whether object 140 b doesmeet the search criteria, in a case where object 140 b indeed meets thesearch criteria than client computer 120 and/or the user is notifiedaccordingly, for example, by an email or SMS or any other technique suchas instant messaging.

In some embodiments, client computer 120 and/or the user is notified ofand/or provided with a representation of object 140 b even if object 140b does not meet or does not necessarily meet the search criteria,optionally with an indication to that effect. A possible or a potentialrationalization of extending the original search by similar objects thatdo not meet the search criteria is that they are related by propertiesthereof to the original search and the user may be interested to examinethem.

It is noted that, in sonic embodiments and without limiting, referringto a sufficiently fast time and/or sufficiently negligible lapse of timeand/or a practical time and/or a period to that effect implies a periodof less that 5 seconds, such as 4 seconds or 2 seconds or 1 second, alsoreferred to also as real-time.

It is noted again that object 140 b exemplifies a non-indexed object butalso, at least possibly, represents or exemplifies a plurality ofnon-indexed objects. Thus, in some embodiments, engine 130 notifiesclient computer 120 and/or the user about additional results after theprocess of indexing and determination of matching the criteria isexhausted. Optionally or alternatively, engine 130 progressivelynotifies client computer 120 and/or the user as objects such as object140 b are indexed and determined to match the search criteria, forexample, by a series of emails or SMS.

It is noted also that by postponing the indexing and extension of thesearch the load on enterprise 100 is reduced and/or more appropriatelybalanced relatively to completing the process in high priority.

Thus, the user can demand further indexing of related objects withsimilar properties as of identified or found objects that are alreadyindexed, thereby allowing the user the discretion or judgment to demandthe manner and/or situation by which the related objects are indexed.

Further, in some embodiments, the user is allowed and/or permitted todemand or select that one or more non-indexed related objects are to beindexed and presented sufficiently fast, if possible, and to postponethe indexing of the rest of the non-indexed related objects so the useris notified in later on. For example, the user may be notified eitherexhaustively or progressively, such as by one email or a series ofemails, respectively.

In some embodiments, when a non-index object or objects that partiallymatch the search criteria are found, such objects may be used as a basisfor further indexing and determination of partially meeting the searchcriteria based on the properties thereof as descried above.

In some embodiments, the behavior of enterprise 100 such as by engine130 with respect to non-indexed objects, such as whether to proceed withindexing of the non-indexed objects or whether to provide the user withan option to demand immediate indexing of the non-indexed objects orwhether to notify about similar objects that do not meet the criteria,are dictated aid/ or determined by a preset and/or pre-defined and/or aprovided indication or a setting such a code or a flag, collectivelyreferred to also as a flag. For example, enterprise 100 and/or engine130 are pre-configured to operate according to a preset indication, or auser provides an indication along with and/or within the searchcriteria.

Some variations and clarifications according to the present disclosurewith respect to enterprise 100 and/or components and/or operationthereof are presented below.

In some embodiments, a non-indexed object is and/or may be aninsufficiently indexed object. For example, an object that waspreviously indexed but the contents thereof were later altered and thealteration of the contents is not yet indexed, or, for example, anobject being indexed.

In some embodiments, client computer 120 represent a plurality of clientcomputers that conduct searches in enterprise 100 either simultaneouslyand/or sequentially.

Generally, without limiting, engine 130 operates as one or moreprocesses, optionally as concurrent processes.

In some embodiments, engine 130 is comprised in one or more computers orprocessors. In some embodiments, engine 130 is not a part of enterprise100 but, rather, a component, such as a separate computer, linked toenterprise 100. Optionally, in some embodiments, engine 130 is comprisedin an indexing server of enterprise 100.

In some embodiments, operations ascribed to engine 130 are carried outwith one or more components of enterprise 100, such as an indexingserver of enterprise 100, optionally with cooperation with engine 130.

In some embodiments, index 110 is a generalized construct enabled to foradditions, alterations and deletion of entries such as entries 102. Forexample, index 110 provides one or more interfaces such as APIs enablingoperation in and/or on index 110. Likewise, in some embodiments, engine130 is constructed as configured to operate on index 110 according tothe one or more interfaces thereof.

In some embodiments, index-storage 112 and index 110 are not a part ofenterprise 100 but, rather, a component, such as a separate storagedevice, linked to enterprise 100.

In some embodiments, enterprise 100 determines, such as by engine 130and/or another component, whether it plausible to provide additionalresults in real-time, for example, based on the number of objects and/oractivity in enterprise 100. Accordingly, the user is notified to thateffect and may opt for postponing the indexing of related objects ordemand the indexing regardless of the time required.

In some embodiments, the search for objects of enterprise 100 isaccording to one criterion or a condition, and, thus, referring tocriteria or conditions does not preclude one criterion or one condition.

In some embodiments, results of a search for objects, either of anoriginal search and/or of an extended search, constitute and/or compriseany one of links to the objects, or any form of a representation such asa URL of the objects, where referring to objects does not preclude onobject.

Exemplary similar and/or related property of an object comprises,without limiting, any one of a common owner, a common an accesspermission, a common classification, and/or other relations such as acommon person that accessed the object.

Referring to a storage implies one or more storage devices. For example,index-storage 112 may be implemented in one or more devices.

In some embodiments, index-storage 112 and properties-storage 114 areimplemented in the same storage device or devices. Further, in someembodiments, the properties-catalog is implemented within and/or as apart of index 110.

Following below are two scenario that figuratively illustrates exemplaryprocedures according to the present disclosure.

Supposedly, in one scenario, that an organization has a human-resourcesdepartment and an enterprise of the organization has a folder named\\organization\HR whish is shared by suitable permissions with themembers of the human-resources department that include Bob and Alice.

The human-resources department is a valuable one for the organizationand the data in \\organization\HR is considered as critical. Therefore,the enterprise attends to duly update folder ‘\\organization\HR’ andfiles thereof, such as by a sufficiently high priority process.

The organization also provides for members thereof to maintain personaldata in a folder \\organization\home, and thus Alice keeps her privateor personal data in files in a folder \\organization\home\Alice. Thefiles of \\organization\home are considered as insignificant by theorganization and, therefore, are not necessarily indexed in theenterprise or are only partly indexed, such as during an idle process.

At a certain time Alice coordinates with Bob to share her personalfolder with him so that Bob is granted access permission to Alice'spersonal data. Consequently, Bob and Alice have access permissions bothto \\organization\HR and \\organization\home\Alice and thus\\organization\HR and \\organization\home\Alice and files thereof aresimilar at least by the common access permissions.

At a certain time later on, Bob conducts a search in the enterprise bysome criteria based on the index, thereby some files in\\organization\HR are found.

Subsequently, based on the similarity of files in \\organization\HR and\\organization\home\Alice as judged by the common access permissions,the enterprise notifies Bob about the similar files in\\organization\home\Alice, optionally prompting Bob to demand indexingof the non-indexed similar, files in \\organization\home\Alice forpossibly extending the search in a scheduled process and subsequentlynotifying Bob about the extended search findings.

Supposedly, in another scenario, that an organization has a departmentfor stock market analysis in which Alice is a member as an analyst, anda department for trading stocks in which Bob is a member as a broker.The organization has an enterprise where in a folder\\organization\analysis are stored numerous Microsoft Excel files thatare used for the analysis and where, respectively, in a folder\\organization\brokers are stored Microsoft Excel files that are usedfor trading, generally as based on selected files from\\organization\analysis.

The files in \\organization\analysis are of a transitory nature asalgorithms and other analyses are frequently tested, and therefore arenot necessarily indexed, at least not in high priority.

On the other hand, the files in \\organization\brokers are alwaysindexed, such as to keep track of the trading.

The files in \\organization\analysis and \\organization\brokers aresimilar at least by the common type of the files therein, and by acommon classification according to the general subject matter thereof,For example, the tiles are classified as Stocks, or possibly the filesare classified by a general classification as Financial and by asupplementary and/or additional classification as Stocks.

Thus, when Bob conducts a search having, for example, criteria of shareprices, files in \\organization\brokers are found based on the indexhaving therein prices of stocks, possibly as and/or based on groups ofcells in the Microsoft Excel files.

Subsequently, based on the similarity of files \\organization\brokersand \\organization\analysis as judged by the common files types and/orclassification, the enterprise notifies Bob about the similar files in\\organization\analysis, for example, in Alice's folder\\organization\analysis\Alice, and optionally prompts Bob to demandindexing of the non-indexed similar files in\\organization\analysis\Alice for promptly extending the search.

In view of the descriptions above, enterprise 100 is configuresgenerally and without limiting to perform the following exemplary ofoperations.

-   -   Responsive to a user-driven search executed on enterprise 100,        based on index 110 enterprise 100 finds objects on, parts of        enterprise 100 that are already indexed as results of the        user-driven search.    -   Engine 130 looks at the properties of the results of the        user-driven search, and finds other objects of enterprise 100        that were not yet indexed and having similar properties as the        results of the user-driven search.    -   Responsive to a setting a pre-defined or provided with        user-driven search, enterprise 100 either (a) or forces, such as        by a high-priority process of engine 130, indexing of the        non-indexed similar objects to extend the user-driven search by        the similar objects sufficiently immediately, or in real-time,        optionally responsive to a choice by the user demanding the        indexing of the similar objects, or (b) postpones the indexing        of the similar objects followed by a notification to the user.

In some embodiments, only non-indexed objects that meet or matches thecriteria of the user-driven search as indexed.

Thus, the original user-driven search is extended by a post-searchindexing of non-indexed objects.

FIG. 2A outlines operations 200 in indexing, non-index objects in acomputerized system having an index, according to exemplary embodimentsof the disclosed subject matter.

In operation 202 indexed objects that meet criteria related to contentsof the indexed objects are identified The identification is based on theindex of the computerized system which stores and maintains entriesbased on the contents of the indexed objects.

Generally, without limiting, the criteria are provided by a user, suchas in query and/or a search for objects of the computerized system thatis conducted by the user, for instance, via a computer linked to thecomputerized system.

In operation 204 non-indexed objects having a property similar to an atleast one property of the identified indexed objects are detected in thecomputerized system,

In operation 206 the non-indexed objects are indexed in the index.

In operation 208, at least optionally, representations of the newlyindexed non-indexed objects are provided, for example, therepresentations are provided to the computer linked to the computerizedsystem. Optionally or additionally, the representations are providedalong with the representations of the identified indexed objects.

FIG. 2B further outlines operations 220 in indexing non-index objects ina computerized system having an index, according to exemplaryembodiments of the disclosed subject matter.

Operation 222 and operation 224 are analogous to operations 204 andoperation 206 of operations 200, respectively, and for brevity andclarity are not repeatedly or redundantly described.

In operation 232 it is checked whether there is a flag indicating toproceed with indexing of the non-indexed objects.

If true, operation 226 and operation 228 follow sequentially. Operation226 and operation 228 are analogous to operations 206 and operation 208of operations 200, respectively, and for brevity and clarity are notrepeatedly or redundantly described.

If false, in operation 234 alternatives for subsequent activitiesprovided. For example, the alternatives are provided to a user operatinga computer linked to the computerized system.

In operation 236 it is checked whether an alternative to demand indexingof the non-indexed objects is chosen.

If true, operation 226 and operation 228 follow sequentially.

If false, in operation 242 indexing of the non-indexed objects ispostponed, such as by scheduling the indexing for a subsequent or laterprocessing or activity.

In operation 244 a notification is issued about the newly indexednon-indexed objects. For example, the representations of the newlyindexed objects are provided to a user that that conducted the searchfor objects of the computerized system or that posed a query for objectof the computerized system.

It is noted that regarding operations 200 and/or operations 220 thatreferring to a plurality of items or entities does not preclude itemand/or entity. For example, the indexed objects do not preclude oneindexed object, or the non-indexed object do not preclude onenon-indexed object, or the criteria do not preclude one criterion, orthe properties do not preclude one property.

There is thus provided according to the present disclosure a method forindexing objects in a computerized system having an index, comprisingidentifying in the computerized system an at least one indexed objectthat meets an at least one criterion related to contents of the at leastone indexed object, detecting an at least one non-indexed object havinga property similar to an at least one property of the at least oneindexed object that was identified, and indexing the at least onenon-indexed object in the index, wherein the method is performed by thecomputerized system.

In some embodiments, the indexing is performed responsive to detectingthe at least one non-indexed object.

In some embodiments, the indexing is scheduled to be performedsubsequently to detecting the at least one non-indexed object.

In some embodiments, the at least one indexed object comprises aplurality of indexed object.

In some embodiments, the at least one criterion comprises a plurality ofcriteria,

In some embodiments the at least one property comprises a plurality ofproperties.

There is thus further provided according to the present disclosure amethod for a post-search indexing of objects in a computerized systemhaving an index, comprising searching for indexed objects in thecomputerized system according to an at least one criterion received froma computer that is linked to the computerized system, identifying in thecomputerized system an at least one indexed object that meets the atleast one criterion, detecting an at least one non-indexed object havinga property similar an at least one property of the at least one indexedobject, providing the computer with alternatives for choosing either todemand proceeding with indexing of the at least one non-indexed objector to postpone the indexing of the at least one non-indexed object, andreceiving a choice from the computer, and according to the choice,performing either indexing of the at least one non-indexed object andproviding the computer with a representation thereof or scheduling for asubsequent indexing the at least one non-indexed object, wherein themethod is performed by the computerized system.

In some embodiments, following the subsequent indexing a user of thecomputer is notified about the at least one non-indexed object that issubsequently indexed.

In some embodiments, the representation is provided only when the atleast one non-indexed object that is subsequently indexed meets the atleast one criterion.

In some embodiments, the computer is notified only when the at least onenon-indexed object that is subsequently indexed meets the at least onecriterion.

In some embodiments, one criterion relates to content of objects of thecomputerized system.

In some embodiments, the at least one criterion comprises a plurality ofcriteria.

There is thus yet further provided according to the present disclosurean apparatus for indexing objects in a computerized system, comprisingan at least one computer, an at least one storage device constructedwith an index for objects of the computerized system, wherein the atleast one computer is constructed with a program configured foridentifying in the computerized system an at least one indexed objectthat meets an at least one criterion related to contents of the at leastone indexed object, detecting an at least one non-indexed object havinga property similar an at least one property of the at least one indexedobject, and indexing the at least one non-indexed object in the index.

In the context of some embodiments of the present disclosure, by way ofexample and without limiting, terms such as ‘operating’ or ‘executing’imply also capabilities, such as ‘operable’ or ‘executable’,respectively.

Conjugated terms such as, by way of example, ‘a thing property’ impliesa property of the thing, unless otherwise clearly evident from thecontext thereof.

The terms ‘processor’ or ‘computer’, or system thereof, are used hereinas ordinary context of the art, such as a general purpose processor or amicro-processor, RISC processor, or DSP, possibly comprising additionalelements such as memory or communication ports. Optionally oradditionally, the terms ‘processor’ or ‘computer’ or derivatives thereofdenote an apparatus that is capable of carrying out a provided or anincorporated program and/or is capable of controlling and/or accessingdata storage apparatus and/or other apparatus such as input and outputports. The terms ‘processor’ or ‘computer’ denote also a plurality ofprocessors or computers connected, and/or linked and/or otherwisecommunicating, possibly sharing one or more other resources such as amemory.

The terms ‘software’, ‘program’, ‘software procedure’ or ‘procedure’ or‘software code’ or ‘code’ or ‘application’ may be used interchangeablyaccording to the context thereof, and denote one or more instructions ordirectives or circuitry for performing a sequence of operations thatgenerally represent an algorithm and/or other process or method. Theprogram is stored in or on a medium such as RAM, ROM, or disk, orembedded in a circuitry accessible and executable by an apparatus suchas a processor or other circuitry.

The processor and program may constitute the same apparatus, at leastpartially, such as an array of electronic gates, such as FPGA or ASIC,designed to perform a programmed sequence of operations, optionallycomprising or linked with a processor or other circuitry.

The term computerized apparatus or a computerized system or a similarterm denotes an apparatus comprising one or more processors operable oroperating according to one or more programs.

As used herein, without limiting, a module represents a part of asystem, such as a part of a program operating or interacting with one Ormore other pans on the same unit or on a different unit, or anelectronic component or assembly for interacting with one or more othercomponents.

As used herein, without limiting, a process represents a collection ofoperations for achieving a certain objective or an outcome.

The term ‘configuring’ and/or ‘adapting’ for an objective, or avariation thereof, implies using at least a software and/or electroniccircuit and/or auxiliary apparatus designed and/or implemented and/oroperable or operative to achieve the objective.

A device storing and/or comprising a program and/or data constitutes anarticle of manufacture. Unless otherwise specified, the program and/ordata are stored in or on a non-transitory medium.

In case electrical or electronic equipment is disclosed it is assumedthat an appropriate power supply is used for the operation thereof.

The flowchart and block diagrams illustrate architecture, functionalityor an operation of possible implementations of systems, methods andcomputer program products according to various embodiments of thepresent disclosed subject matter. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof program code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, illustrated or describedoperations may occur in a different order or in combination or asconcurrent operations instead of sequential operations to achieve thesame or equivalent effect.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. As usedherein, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. it will be further understood that the terms “comprises”and/or “comprising” and/or “having” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The terminology used herein should not be understood as limiting, unlessotherwise specified, and is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosedsubject matter. While certain embodiments of the disclosed subjectmatter have been illustrated and described, it will be clear that thedisclosure is not limited to the embodiments described herein. Numerousmodifications, changes, variations, substitutions and equivalents arenot precluded.

We claim:
 1. A method for indexing objects in a computerized systemhaving an index, comprising: based on the index, identifying in thecomputerized system an at least one indexed object that meets an atleast one criterion related to contents of the at least one indexedobject; based on the identified indexed object looking for and detectingan at least one non-indexed object having a property similar to an atleast one property of the at least one indexed object that wasidentified; and indexing the at least one non-indexed object in theindex, wherein the method is performed by the computerized system. 2.The method according to claim 1, wherein the indexing is performedresponsive to detecting the at least one non-indexed object.
 3. Themethod according to claim 1, wherein the indexing is scheduled to beperformed subsequently to detecting the at least one non-indexed object.4. The method according to claim 1, wherein the at least one indexedobject comprises a plurality of indexed object.
 5. The method accordingto claim 1, wherein the at least one criterion comprises a plurality ofcriteria.
 6. The method according to claim 1, wherein the at least oneproperty comprises a plurality of properties.
 7. An apparatus forindexing objects in a computerized system, comprising: an at least onecomputer; an at least one storage device constructed with an index forobjects of the computerized system, wherein the at least one computer isconstructed with a program configured for identifying in thecomputerized system an at least one indexed object that meets an atleast one criterion related to contents of the at least one indexedobject, based on the identified indexed object looking for and detectingan at least one non-indexed object having a property similar an at leastone property of the at least one indexed object, and indexing the atleast one non-indexed object in the index.